home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / internet / irc_i_dodatki / eggdrop / eggdrop11.lha / scripts / console.tcl < prev    next >
Text File  |  1997-01-15  |  3KB  |  108 lines

  1. #
  2. # save a user's console when she leaves, restore it when she returns
  3. # (modified to work with eggdrop 1.0)
  4. #
  5. # ok, so there are basically two ways you can do this:
  6. # 1) console mode is automatically saved when you leave
  7. #    advantages: automatic -- any console mode changes you do will stick
  8. #    disadvantages: if you're on the bot twice, whichever session exits
  9. #       last will be the one to get saved
  10. # 2) console mode is saved by typing '.store'
  11. #    advantages: can set console the way you like it, store it that way,
  12. #       and then make temporary changes later as you like
  13. #    disadvantages: won't save changes if you forget to use '.store'
  14. #
  15. #
  16. # 07-12-96 cmwagner  Added in force-channel variable, to force the newbies
  17. #                    into a set channel, not to expose their lameness, or
  18. #                    just not to expose the party line to your users, also
  19. #                    added in saving and restoring of saved channel.
  20. # 12-28-96 cmwagner  Added in info-party variable, to allow the info lines
  21. #                    to be broadcasted across the party line channel the
  22. #                    user joins.
  23.  
  24. # set which mode you want here:
  25. # (0 = use '.store')  (1 = automatic save when you leave)
  26. set console-autosave 0
  27.  
  28. # set which channel you want to force users in if they don't have one
  29. # stored:
  30. set force-channel 0
  31.  
  32. # set this if you want to advertise info lines when users join then
  33. # party line.  (1 = yes)
  34. set info-party 1
  35.  
  36. ##########################################################################
  37.  
  38. if {![info exists toolkit_loaded]} {
  39.   catch {source scripts/toolkit.tcl}
  40.   if {![info exists toolkit_loaded]} {
  41.     catch {source toolkit.tcl}
  42.     if {![info exists toolkit_loaded]} {
  43.       error "Can't load Tcl toolkit!"
  44.     }
  45.   }
  46. }
  47.  
  48. if {${console-autosave}} {
  49.   bind chof - * save_console
  50. } {
  51.   bind dcc - store save_console_dcc
  52. }
  53. bind chon - * restore_console
  54.  
  55. proc restore_console {handle idx} {
  56.   global force-channel info-party
  57.  
  58.   set cons [user-get $handle console]
  59.   set conchan [user-get $handle conchan]
  60.   if {![matchattr $handle m]} {
  61.     foreach x {c x r o} {
  62.       regsub -all $x $cons "" cons
  63.     }
  64.   }
  65.   if {$cons != ""} {
  66.     if {$conchan != ""} {
  67.       console $idx $conchan $cons
  68.     } {
  69.       console $idx $cons
  70.     }
  71.   }
  72.   set echo [user-get $handle echo]
  73.   if {$echo != ""} { echo $idx $echo }
  74.   set chan [user-get $handle chan]
  75.   if {$chan == ""} {
  76.      set chan ${force-channel}
  77.   }
  78.   setchan $idx $chan
  79.  
  80.   set info [getinfo $handle]
  81.   if {${info-party} && $info != ""} {
  82.      dccputchan $chan $info
  83.   }
  84. }
  85.  
  86. proc save_console {handle idx} {
  87.   set cons [console $idx]
  88.   user-set $handle conchan [lindex $cons 0]
  89.   user-set $handle console [lindex $cons 1]
  90.   user-set $handle echo [echo $idx]
  91.   user-set $handle chan [getchan $idx]
  92. }
  93. proc save_console_dcc {handle idx param} {
  94.   set cons [console $idx]
  95.   set chan [getchan $idx]
  96.   user-set $handle conchan [lindex $cons 0]
  97.   user-set $handle console [lindex $cons 1]
  98.   user-set $handle echo [echo $idx]
  99.   user-set $handle chan $chan
  100.   set newcons "[lindex $cons 0]: [lindex $cons 1]"
  101.   if {[echo $idx]} {
  102.     putdcc $idx "Saved your console mode as $newcons (echo on) (chan $chan)"
  103.   } {   
  104.     putdcc $idx "Saved your console mode as $newcons (echo off) (chan $chan)"
  105.   }
  106.   return 1
  107. }
  108.